package mysql

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
	"go_web/config"
)

//初始化一个全局的db
var db *sqlx.DB

//此文件主要是初始化数据库连接
func Init(cfg *config.MysqlConfig) (err error) {
	//数据库连接的格式 username:passwors@tcp(主机名:端口号)/dbname
	//Sprint系列函数会把传入的数据生成并返回一个字符串。
	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", cfg.User, cfg.Password, cfg.Host, cfg.Port, cfg.DB)
	db, err = sqlx.Connect("mysql", dsn)
	if err != nil {
		return
	}
	db.SetMaxOpenConns(cfg.MaxOpenConns)
	db.SetMaxIdleConns(cfg.MaxIdleConns)
	return
}

//关闭数据库
func Close() {
	_ = db.Close()
}
